Android FrameWork--SytemServer进程fork
全部标签 每当新用户在我的网站上注册时,我都想做一些预处理以缩短他们将来的搜索。这涉及30到2分钟的处理时间。显然,当他们在注册时或在他们访问的任何PHP页面上单击提交按钮时,我不能这样做。但是,我希望在他们注册后的5分钟内(或更短时间内)完成此操作。Cron路线我认为这需要在cron作业中,如果是这样,我应该如何设置cron作业?如果是这样,我的cron行每2分钟运行一次应该是什么样的,我如何确保我没有相同的cron作业与下一个重叠?事件/分支路线-首选如果我可以在不中断用户体验的情况下向我的服务器抛出一些事件,或者从用户注册中fork出一个过程(而不是cron作业),我该怎么做?
我有一个PHP脚本,我在其中使用proc_open()创建了一个新进程。它执行了大约2小时,最后我有一个proc_close()。有时我需要在中间停止这个进程,我如何杀死/发出信号以停止并释放PHP中的资源 最佳答案 好吧,首先你可以创建一个调用proc_close(resource$process)的手动脚本,这显然会等待来自进程的响应,或者如果你需要立即终止它,你可以调用proc_terminate(); 关于php-如何终止由proc_open生成的进程,我们在StackOverf
我确信我正在尝试的非常简单,但我之前从未完全使用过多线程,所以我不确定从哪里开始。我正在使用PCNTL创建一个多线程的PHP应用程序。我希望做的是同时运行3个函数,我希望它们的返回值合并到一个数组中。所以从逻辑上讲,我需要在所有child之间共享一些变量,他们将结果附加到其中,或者仅在单个child和父级之间共享三个变量-然后父级可以稍后合并结果。问题是-我不知道该怎么做。首先想到的是使用sharedmemory,但我觉得应该有一个更简单的方法。此外,如果它有任何效果,那么fork进程的函数是一个公共(public)类方法。所以我的代码如下所示:所以我需要使用shmop_open在我打
我正在组装我的第一个商业PHP应用程序,它并不大,因为我仍在热切地学习PHP:)现在我仍处于规划我的应用程序的概念阶段,但我一直遇到一个问题,该应用程序应该由我的客户在他们自己的服务器上自行托管,并且将包含一些非常长的运行脚本,具体取决于每个客户在其应用程序中输入的数据量。现在我想我有两个选择,要么使用cronjobs,例如让一个或多个cronjobs在每个客户可以自己设置的时间运行,要么将整个数据处理作为在后台运行的守护进程。.我的问题是,因为它是一个自托管应用程序(并且每个服务器都不同)...是否建议尝试编写在客户服务器上启动后台进程的php,或者这是您可以做的更多事情只在您自己的
我看到过一个PHP代码,它使用shell命令来确定这个进程现在是否正在运行,但我把它弄丢了。你能告诉我怎么做吗?想法是创建一个php文件并使用php-f将此文件作为cron作业运行。脚本的执行时间可能是10秒,也可能是10分钟。我需要让这个cron每分钟运行一次,如果前一分钟的cron仍在运行-停止新的并让另一个完成。我不太擅长shell编程,所以我需要一些帮助。P.S这个想法是创建一个守护进程,而不是在后台放置无休止的PHP进程。 最佳答案 您应该尝试在锁定文件上获取排他非阻塞锁。如果你成功了,你的进程是唯一运行的实例,你应该保持
我有一个在命令行中调用的php脚本:$phpimportTextFile.php--user"X"--title"name"notice_X.txt我想在python脚本中使用该文件。我试过了:forfileinos.listdir("."):subprocess.call(["php","-f","importTextFile.php"],"--user=X","--title="'%s'%name,file)我遇到了以下错误:File"./pageFromFile.py",line21,inmainsubprocess.call(["php","-f","importTextFil
我正在编写一个需要在PHP中执行并发任务的脚本。我进行了一些测试并遇到了奇怪的结果。我正在使用pcntl_fork生成一个child。父进程只等待子进程完成。我正在生成5个child,每个child运行一个生成随机数(秒数)的函数并休眠那么长时间。出于某种原因-所有child都生成相同的数字。这是一个代码示例:private$_child_count=0;privatefunction_fork_and_exec($func){$cid=++$this->_child_count;$pid=pcntl_fork();if($pid){//parentreturn$pid;}else{/
服务端流程步骤socket函数创建监听套接字lfdbind函数将监听套接字绑定ip和端口listen函数设置服务器为被动监听状态,同时创建一条未完成连接队列(没走完tcp三次握手流程的连接),和一条已完成连接队列(已完成tcp三次握手的连接)accept函数循环的从已完成连接队列中提取连接,并返回一个新的套接字cfd跟客户端进行通信fork函数创建一个子进程,让子进程与客户端进行通信子进程:read函数循环的从r缓冲区读取客户端发送的数据,write函数将要发送的数据写入w缓冲区close函数关闭套接字客户端流程步骤socket函数创建套接字connect函数连接服务器write函数将要发送的
我有一个在命令行上运行的PHP脚本,当脚本应该退出时,它却永远挂起。它发生在Windows和Linux上,因此它与操作系统无关。我已经尝试使用XDebug调试代码,进入最后的exit语句(也尝试过die但没有成功)。在一些对象上运行了几个析构函数之后,没有什么可以单步执行的了,这个过程只会永远等待。它什么都不做,不消耗任何资源。让进程退出的唯一方法是杀死它,例如Ctrl+C在我的所有脚本中都不会发生这种情况,但我有一个可以重现的案例。我不确定它是在我的代码、库代码(主要是Symfony、Doctrince等)中还是在PHP本身中。我已经使用strace运行脚本,输出的结尾附在下面。我不
有没有办法在PHP中实现进程间(或线程)通信,但仍然保持所有异步运行?我想要一个创建4个进程然后立即终止的脚本。4个进程中的每一个都应该执行一个操作,完成后应该通知某人(也许是另一个脚本?)它已完成。所以我想知道所有4个脚本何时完成,这样我就可以将状态从retrieving更新为done。这可能吗?最好不要重新编译PHP(我读到这是使用线程所必需的),但如果需要我会这样做。 最佳答案 正如其他人所提到的,Gearman是一种解决方案。另一个我更喜欢的方法是创建一个异步消息队列,您可以在其中向作业堆栈添加作业。我正在使用ZeroMQ为